package marina;

public class J11Exception {
	//예외처리 후후후...
	public static void main(String[] args) {
		/*System.out.println("이 글이 보이나요?");
		//System.out.println(100/0); //오류!
		System.out.println("이 글도 보이나요?");
		int i[] = new int[10];
		for(int j = 1; j <= 10; ++j){
			System.out.println(i[j]); //오류!
		}*/
		
		System.out.println("이 글이 보이나요?");
		try{
		System.out.println(100/0);
		} catch(ArithmeticException ae){
			ae.toString();
			System.out.println("0으로 나누시면 안됩니다.");
		}
		
		System.out.println("이 글도 보이나요?");
		int i[] = new int[10];
		for(int j = 1; j <= 10; ++j){
			try{
			System.out.println(i[j]);
			} catch(ArrayIndexOutOfBoundsException aiob){
				aiob.getMessage();
				System.out.println("배열 인덱스 초과!");
			}
		}
		
		try{
			System.out.println(100/0);
			System.out.println(i[100]);
		} catch(ArithmeticException ae){
			ae.getMessage();
			System.out.println("0으로 나누시면 안됩니다.");
		} catch(ArrayIndexOutOfBoundsException aiob){
			aiob.getMessage();
			System.out.println("배열 인덱스 초과!");
		} //다중catch문이 가능! (순서가 있으니 유념.)
		
		//모든 예외의 조상. Exception을 사용한 ..
		try{
			System.out.println("----------------시-작-----------------");
			System.out.println(100/0);
			System.out.println(i[500]);
			System.out.println("----------------끄-읏-----------------");
		} catch(Exception ex){
			ex.printStackTrace();;
			System.out.println("런타임 오류");
		}
	}
}
